#Rewrite cpp files:
- bytecode_machine.cpp
- cpu.cpp
- dataset.cpp
- soft_aes.cpp
- virtual_memory.cpp
- vm_interpreted.cpp
- allocator.cpp
- assembly_generator_x86.cpp
- instruction.cpp
- randomx.cpp
- superscalar.cpp
- vm_compiled.cpp
- vm_interpreted_light.cpp
- blake2_generator.cpp
- instructions_portable.cpp
- virtual_machine.cpp
- vm_compiled_light.cpp
- superscalar_program.h
- allocator.h

#Implement makefile

#Implement benchmarking:
`tests/benchmark.cpp`
`tests/affinity.cpp`

#Check if we only need one jit compiler file:
`jit_compiler_x86.cpp`

#remove preprocessor cases to cpp and windows in the original c files.

#Remove preprocessor cases to 32 bit x86.

#change calls to rx_sqrt -> sqrt

#remove calls to rx_set_double_precision()

#Delete functions:
- `rx_set1_long_vec_i128()` is not used anywhere.

#Change function names:
- Should either be static when accessed only in the same file, or have the prefix
`randomx_`

#change type name:
- `rx_vec_i128` -> `randomx_vec_i128`, etc.

#Implement:
`reciprocalCache` in `randomx_dataset_cache` from vector -> resizable array

#include aes_hash.h for files that use hashAes functions

#change types from randomx_dataset to uint8_t *

# Differentiate
`randomx_dataset_init` and `randomx_dataset_alloc` (maybe move the latter
to tests as it is only used there)
